package servicio;

import java.net.Inet4Address;
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.HashSet;

import dominio.beans.*;
import dominioSets.srv.SetListaProveedores;


import rmi.InterfazRemota;
import rmi.OficinaDeVentas;

public class ServidorImp {
	

	HashSet<Proveedor> proveedores = new HashSet<Proveedor>();
	SetListaProveedores provs = new SetListaProveedores(proveedores);
	public ServidorImp (){
		inicializarServidor();
		
		
		
	}
	
	private void inicializarServidor()  {
		
		try {
			LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
			InterfazRemota ir = new OficinaDeVentas();
			Naming.rebind("//localhost/ServicioOficinaVentas",ir);
			listarVinculos();
			
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		
		
	}

	private void listarVinculos() {
		try{
			String [] vinculos = Naming.list("");
			System.out.println("Vinculos disponibles: ");
			System.out.println(Inet4Address.getLocalHost().getHostAddress());
			for(int i = 0; i < vinculos.length; i ++)
			{
				System.out.println(vinculos[i]);
				
			}
		}catch (Exception e)
		{
			e.printStackTrace();
		}
		
	}

	public void altaProveedor(Proveedor p) {
		provs.addProveedor(p);
		
	}

	public Proveedor buscarProveedor(String cuil, String razonSocial) {
		if(cuil != "")
			return provs.buscarProveedorPorNroCuil(cuil);
		else 
			if(razonSocial !="")
				return provs.buscarProveedorPorRazonSocial(razonSocial);
		
		return null;
		
	}

	public void eliminarProveedor(Proveedor p) {
		provs.removerProveedor(p);
	}
	
	
}
